网站装好、商品上架,只是电商部署的一半。另一半在于它能不能撑住促销,订单会不会丢,顾客的支付信息是否安全,以及半年之后,有没有人还记得当初是怎么配的。这篇文章不再比较服务器该放在哪个地域,只讨论一件事:地域已经定了,怎样把跨境电商网站在香港云主机上部署好。
从电商业务的实际运行过程出发,而不是一上来就开始安装程序。下面四个问题,决定了后面所有的技术选择。
先确认客户的市场、运营团队所在的位置,以及第三方服务的接入要求。支付、物流、ERP这些外部系统,各有自己的接入条件,有的对服务器的位置、IP有要求,有的需要提前登记,这些要在选型阶段就问清楚。
大致有三种:自主开发的电商平台,WordPress加WooCommerce这类自托管程序,以及由第三方提供托管的网站平台。三者对服务器的要求完全不同,自主开发的需要完整的运行环境和运维,自托管程序需要部署和维护,而托管平台则基本不需要自己的服务器来运行平台本身。
估算数据库的读写量,商品图片的体积,后台任务(比如库存同步、邮件发送)的频率,以及高峰时段的访问量。这些数字决定了资源需求,估算得粗一点没有关系,但不能完全不估。
在架构设计阶段,就要核实适用的数据保护、支付安全和其他合规要求。涉及顾客的个人信息,尤其是在不同地区之间流转的时候,要关注相关地区的规定,必要时请法务或者专业人士确认。这类问题,上线之后再补,代价往往更高。
特别提醒:Shopify等托管型平台,通常不需要用户自己购买云主机来运行平台本身。只有采用自托管的电商程序,或者要部署一些外围的应用,比如定制的后台工具、数据同步程序,才需要按实际的架构来选择服务器。
评估页面动态渲染、订单处理、后台任务,以及促销活动时的计算需求。后台任务常被忽视,定时的库存同步、报表生成,可能恰好在高峰时占用CPU。
把操作系统、Web服务、应用进程、数据库和缓存的内存占用加在一起估算,别只算应用本身。
分别估算系统文件、商品资源、数据库和日志的空间。商品图片和日志,是增长最快的两项。
根据商品量、订单写入和查询的模式,评估数据库需要的CPU、内存和磁盘。订单多、查询复杂的电商网站,数据库往往是最先到瓶颈的地方。
带宽的估算,要依据图片的大小、页面的访问量、缓存命中率,以及实际的出网流量,不能只看访客的人数。同样的访客数,页面体积、缓存命中率不同,需要的带宽可以差很远。
为促销期、订单增长和程序升级留出扩容的空间,并且建立监控,让扩容有依据,不靠感觉。
下面用两个案例式的推演,来演示这套方法。两个案例都是假设的场景,不对应任何真实的客户,数字只用来演示怎么算,不代表“这样的配置就一定够用”:
推演项目 | 初创网店(假设场景) | 成熟网店(假设场景) |
业务规模 | 商品几百件,日均几十个订单 | 商品数千件,订单持续稳定,有库存和订单的同步任务 |
内存估算 | 系统约0.5GB,Web服务约0.2GB,PHP进程按8个、每个约80MB计约0.65GB,数据库约1GB,缓存约0.25GB,合计约2.6GB,再留出余量,从4GB左右起步评估 | 应用与数据库拆开,各自估算:应用侧按并发进程数和缓存计算,数据库侧按数据量和缓冲池需求计算,两者分别留出余量 |
带宽估算 | 假设日均5000访客,每人看3个页面,页面约1.5MB,合计约22.5GB;CDN命中80%的话,源站出网约4.5GB,一个月约135GB | 用同样的方法,按实际的访客数和页面体积重新计算;大促时按峰值而不是日均来估算 |
数据库 | 与应用同机部署作为起点,注意备份 | 独立部署,配合监控慢查询,必要时评估只读副本 |
备份 | 每日备份数据库和文件,并做恢复演练 | 数据库更高频的备份,加上文件备份,恢复流程要写进预案 |
结论的性质 | 只是方法演示,不是“这个配置一定够用” | 同样只是方法演示,实际配置要靠压测和监控来确认 |
一个典型的电商网站,主要组件之间的关系如下:
用户浏览器 | → | CDN / DNS | → | Web服务 | → | 电商应用 | → | 数据库与缓存 |
除了这条主线,还有独立的对象存储或文件存储、备份系统、日志监控和安全防护这几个组件,围绕着它们工作。
Nginx之类的Web服务,负责接收请求、提供静态文件、转发动态请求;应用的运行环境,比如PHP、Node.js,运行业务程序;业务程序处理购物车、订单这些逻辑。把三者的职责分清,排查问题和扩容时,才知道该动哪一层。
数据库是否独立部署,要看实际情况:当应用和数据库在争抢同一台机器的资源,或者数据库需要独立扩容、独立备份的时候,分开部署才更合适。分开之后,要处理几个新的问题:应用和数据库之间的网络访问,数据库端口不能对公网开放,只允许内网或者指定的地址访问;连接是否加密;备份怎么做。
根据图片和文件的访问量,评估CDN和对象存储的必要性。商品图片多、顾客分布广的网站,把图片放到对象存储,再用CDN分发,可以大幅降低源站的压力。
页面缓存,把整个页面的结果存起来;对象缓存,把数据库的查询结果存在内存里;再加上数据库本身的查询优化,三者是配合的关系。缓存能缓解压力,却掩盖不了糟糕的查询语句,该优化的查询仍然要优化。
对服务器的资源、错误日志、数据库的状态、订单流程的成功率,以及证书的到期时间建立监测。出了问题,应该是系统先告诉你,而不是顾客先告诉你。
对于小型业务,单台服务器可以作为简化的起点,但要做好备份和恢复。业务增长之后,再按照出现的瓶颈,逐步拆分应用层、数据库层或文件存储,避免刚上线就把架构设计得过于复杂。
确认域名指向了正确的服务器,或者CDN。使用CDN的话,要清楚解析是先到CDN,再回源到服务器。
安装证书,设置HTTP到HTTPS的跳转,并检查证书的续期是否正常。电商网站涉及登录和支付,HTTPS是基本要求。
按照支付服务商的官方要求,配置回调地址、签名验证、密钥和访问权限。回调接口一定要验证签名,不能只凭请求里的内容,就认定一笔订单已经支付。
支付服务商的回调,可能因为网络问题而重复发送,也可能晚到。要确保支付回调、订单写入和异常重试的逻辑,不会因为重复的请求而产生重复的订单,常见的做法,是用订单号作为唯一标识,让同一笔订单的处理是“幂等”的,重复处理也不会产生副作用。
核实交易通知和订单邮件的发送配置,以及是否真的送达。邮件进了垃圾箱,顾客会以为没有下单成功。
支付密钥、数据库凭证等敏感的参数,不应该直接写进公开的代码仓库,也不能因为调试方便,就开放数据库的管理端口。
1. 管理端口。限制SSH、RDP、数据库等管理端口的公网访问范围,能限制到固定IP的,就限制到固定IP。
2. 后台安全。为后台管理配置强认证、权限分级和必要的访问审计,不同的角色只给到需要的权限。
3. 保持更新。及时更新系统、Web服务和应用程序,已知的漏洞,是最常见的入侵入口。
4. 备份与恢复。定期备份数据库和文件,并验证备份确实可以恢复。
5. 接口与插件。检查支付接口、上传功能和第三方插件的安全风险,插件越多,风险面越大。
6. 告警与应急。根据业务的需要,设计故障告警、应急恢复,以及数据保留的机制。
采用“从客户端到源站”的诊断顺序,由外向内,逐层排除。下表列出了每一层要查什么,以及常用的手段:
排查层次 | 检查什么 | 常用手段 |
域名解析与接入 | 域名是否指向正确的地址,用户到接入节点的连接是否正常 | dig、nslookup、ping、curl的分阶段耗时 |
CDN与回源 | 缓存命中率,回源是否频繁,源站响应是否正常 | CDN控制台的统计,响应头里的缓存标记 |
页面资源 | 页面总大小,图片的格式和尺寸,前端请求数量 | 浏览器开发者工具的网络面板 |
服务器资源 | CPU、内存、磁盘I/O是否到了瓶颈 | top、free、iostat、控制台监控 |
数据库 | 是否有慢查询,连接数是否合理,索引是否恰当 | 慢查询日志、EXPLAIN |
多地区与高峰时段 | 不同地区、不同时间的访问表现是否一致 | 多个测试源重复采样 |
把这几层查完,根据实际的瓶颈,再决定是优化页面,调整配置,还是更换网络方案。没有定位到瓶颈就动手,多半是在浪费时间和预算。
可以用一份部署需求清单,来对接恒讯科技的产品,而不是从产品介绍出发。建议从六个方面逐一匹配:网站的应用类型,目标市场,配置需求,线路的表现,备份的安排,以及后续的扩容。
对于同时覆盖内地和海外市场的电商网站,要特别核实各个地区的实际访问效果,以及第三方的支付、ERP、物流接口的实际连通情况,网站本身再快,接口通不了,订单一样跑不起来。恒讯科技官网的香港云服务器产品信息,可以用来初步核对资源和套餐,最终的部署方案,以实际的产品配置和测试结果为依据。
香港云主机能否搭建跨境电商网站?可以。关键是配置要和业务规模匹配,并且做好备份、安全和监控。顾客主要在哪里,决定了访问体验,需要实测。
小型电商网站需要独立部署数据库吗?起步阶段,数据库和应用部署在同一台服务器上,是可以接受的简化方案,前提是备份做好。当订单增长、两者开始争抢资源,或者需要独立扩容的时候,再拆分。
跨境电商网站应该使用CDN吗?商品图片多、顾客分布广的网站,通常值得使用。注意CDN主要加速静态资源,结账、下单这类动态流程,仍然取决于源站。
订单数据库放在香港是否合适?要看应用和顾客在哪里。应用和数据库应该处在同一个机房,如果应用在香港,数据库放在香港是合理的;如果主要顾客在其他地区,并把应用部署到了别处,数据库离应用太远,会拖慢结账。涉及个人信息的跨地域存储,还要关注相关的数据保护规定。
网站上线后需要多久备份一次?取决于订单的频率,以及业务能接受丢失多久的数据。订单频繁的网站,数据库的备份应该比每日一次更频繁,比如每日全量加更密的增量备份。更重要的是,备份必须定期做恢复演练。
网站访问变慢时,应先升级服务器还是优化页面?先定位瓶颈。多数情况下,优化页面的成本更低,比如压缩图片、减少请求、启用缓存和CDN,能先解决一大部分问题。确认服务器资源确实到了瓶颈,再升级配置。
把上面的内容,串成一条可以执行的流程:
1. 部署前准备。明确客户市场、电商系统类型、预估的规模,以及合规方面的要求。
2. 基础架构。按业务负载反推配置,从简单的架构起步,随瓶颈逐步拆分。
3. 安全配置。完成管理端口、后台权限、更新、备份、插件和支付接口的安全检查。
4. 上线验收。核对域名解析、HTTPS、支付回调、订单状态、邮件通知,并从不同地区做一次访问测试。
5. 持续监控。监控资源、日志、数据库、订单流程和证书到期时间,定期恢复演练。
Copyright © 2013-2020. All Rights Reserved. 恒讯科技 深圳市恒讯科技有限公司 粤ICP备20052954号 IDC证:B1-20230800.移动站


